package com.fs.alert.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.alert.domain.po.Alert;
import com.fs.alert.domain.vo.*;
import com.fs.api.enumeration.AlertStatus;
import com.fs.api.enumeration.AlertType;
import com.fs.api.domain.vo.AlertDetailVO;
import com.fs.common.domain.PageVO;

import java.time.LocalDateTime;
import java.util.List;

public interface IAlertService extends IService<Alert> {
    PageVO<AlertListVO> getAlerts(Integer current, Integer size, AlertType alertType, AlertStatus status, String alertNo, LocalDateTime startTime, LocalDateTime endTime);

    AlertDetailVO getAlertDetail(Long id, boolean withOthers);

    AlertStatisticsVO getAlertStatistics();

    List<AlertTypeStatVO> getAlertTypeStats();

    AlertTypeDistributionVO getAlertTypeDistribution(String timeRange);

    AlertTrendVO getAlertTrend(String alertType);

    Integer getTotalAlertCount();

    Double getUrgentAlertPercentage();

    String getMostCommonAlertType();

    Double getAverageResponseTime();

    AlertStatsTrendVO getAlertStatsTrend();

    List<AlertDashboardVO> getDashboardList();
}
